﻿#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>

int main()
{
	{int a = 10;
	printf("%zd\n", sizeof(a));
	printf("%zd\n", sizeof a);//a是变量的名字，可以省略括号
	printf("%zd\n", sizeof(int));//int是数据类型，不可省略括号
	printf("%zd\n", sizeof a + 3);
	printf("%d\n", a);//打印结果为10，sizeof中的表达式不计算
	printf("%zd\n", sizeof(3 + 3.5));
	}
	{
		printf("%zd\n", sizeof(char));
		printf("%zd\n", sizeof(short)); 
		printf("%zd\n", sizeof(int));
		printf("%zd\n", sizeof(long));
		printf("%zd\n", sizeof(long long));
		printf("%zd\n", sizeof(float));
		printf("%zd\n", sizeof(double));
		printf("%zd\n", sizeof(long double));
		printf("%zd\n", sizeof(_Bool));
	}
	{
		size_t n = sizeof(int);
		printf("%zd\n", n);
		//sizeof的返回值是size_t,其本质就是无符号整型
	}
	{
		printf("%d\n", 123);
		printf("%5d\n", 123);//限定宽度为5，默认右对齐，在123前面补齐空格
		printf("%-5d\n", 123);//左对齐，在123后面补齐空格
		printf("%5d\n", 1234567);//当输出字符长度大于限定宽度，则打印输出字符，限定宽度无用
	}
	{
		printf("%f\n", 123.45);//123.450000
		printf("%12f\n", 123.45);//  123.450000小数点也占一位，补齐12位
		//小数的默认显示精度是小数点后6位
	}
	{
		printf("%d\n", 12);//12
		printf("%d\n", -12);//-12
		printf("%+d\n", 12);//+12
		printf("%+d\n", -12);//-12
	}
	{
		printf("%f\n", 123.45);
		printf("%.2f\n", 123.45);//限制小数点到后2位
		printf("%.1f\n", 123.45);//限制小数点到后1位
		//小数点限制也可与总宽度限制结合
		printf("%f\n", 0.5);
		printf("%.2f\n", 0.5);//小数点限制2位
		printf("%6.2f\n", 0.5);//小数点2位，总宽度 6位
		printf("%*.*f\n", 6, 2, 0.5);//与上条代码结果相同，可用*代替数字
	}
	{
		//输出部分字符串
		printf("hello world\n");
		printf("%s\n", "hello world");
		printf("%.5s\n", "hello world");//用%.[m]s来指定字符串的长度，[m]代表一个数字，即输出长度
	}
	//{
	//	//scanf
	//	int score = 0;
	//	//输入一个成绩
	//	printf("请输入成绩=");
	//	scanf("%d", &score);//& - 取地址符号
	//	printf("成绩是%d\n", score);
	/*}*/
	//{
	//	int i = 0;
	//	int j = 0;
	//	float x = 0.0f;
	//	float y = 0.0f;

	//	scanf("%d%d%f%f", &i, &j, &x, &y);//输入时必须带上空格

	//	printf("i=%d\n", i);
	//	printf("j=%d\n", j);
	//	printf("x=%f\n", x);
	//	printf("y=%f\n", y);
	//}
	//{
	//		int x;
	//		float y;

	//		// ⽤⼾输⼊ " -13.45e12# 0"
			//解读⽤⼾输⼊时，会从上⼀次解读遗留的第⼀个字符开始，直到读完缓存，或者遇到第⼀个不符合条件的字符为⽌。
	//		scanf("%d", &x);
	//		printf("%d\n", x);//-13
	//		scanf("%f", &y);
	//		printf("%f\n", y);
	//		return 0;
	//
	//}
	//{
	//	int a = 0;
	//	float b = 0.0f;
	//	scanf("%d %f", &a, &b);
	//	printf("&d %f\n", a, b);
	//	//无论输入中有无空格，空格宽度为多少，都可以直接识别

	//}
	//{
	//	char c1 = 0;
	//	char c2 = 0;
	//	char c3 = 0;
	//	/*scanf("%c%c%c", &c1, &c2, &c3);
	//	printf("%c %c %c", c1, c2, c3);*/
	//	//%c不会忽略空白字符，不忽略空格
	//	scanf(" %c %c %c", &c1, &c2, &c3);
	//	printf("%c %c %c", c1, c2, c3);
	//	//在%c前面输入空格，则强制跳过空格

	//
	//}


			return 0;

}